/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package redinftel.sesiones;

import java.math.BigDecimal;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import redinftel.entidades.Lista;
import redinftel.entidades.ListaAmigos;
import redinftel.entidades.Usuario;

/**
 * Clase para el manejo de datos de la entidad ListaAmigos.
 * @author Six Degrees Team
 */
@Stateless
public class ListaAmigosFacade extends AbstractFacade<ListaAmigos> implements ListaAmigosFacadeRemote {
    @PersistenceContext(unitName = "redinftel-ejbPU")
    private EntityManager em;

    protected EntityManager getEntityManager() {
        return em;
    }

    public ListaAmigosFacade() {
        super(ListaAmigos.class);
    }
    @Override
    public List<Usuario> findAmigosByLista(Usuario idUsuarioCreador, String nombre) {
        return em.createQuery("SELECT l.idUsuario FROM ListaAmigos l WHERE l.idLista.nombre =?2"
                + " AND l.idLista.idUsuarioCreador =?1")
                .setParameter(1, idUsuarioCreador).setParameter(2, nombre).getResultList();
    }

    @Override
    public List<BigDecimal> findPk() {
       return em.createQuery("SELECT MAX(l.idListaAmigo) FROM ListaAmigos l").getResultList();
    }

    @Override
    public ListaAmigos findByListaAmigo(Lista l, BigDecimal idAmigo) {
         return (ListaAmigos) em.createQuery("SELECT l FROM ListaAmigos l WHERE l.idLista =?2"
                + " AND l.idUsuario.idUsuario =?1")
                .setParameter(1, idAmigo).setParameter(2, l).getResultList().get(0);
    }
}
